﻿using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Unity;

namespace Infrastructure
{
    public abstract class ModuleBase : IModule
    {
        [Dependency]
        public IUnityContainer UnityContainer { get; set; }

        [Dependency]
        public IRegionManager RegionManager { get; set; }

        [Dependency]
        public IEventAggregator EventAggregator { get; set; }

        public void Initialize()
        {
            LoadCommonStyle();
            Substrict();
        }

        public abstract void LoadCommonStyle();

        public abstract void Substrict();
    }
}
